パフォーマンス 雑な書き散らし
パフォーマンス関連の知識が情弱過ぎるので知識をつけていく
以下、onigiri.w2.icon個人の思考がほとんどであり、確実な情報ではないので注意されたし。
Webサイトでのパフォーマンス
主に「クライアント」「クライアント、サーバー間の通信」「サーバー」に分けて思考していく
クライアント
ブラウザ側で何やら実行するときの処理の重さが、全体のパフォーマンスに聞いてくる。
非同期処理とかも関わってきてややこしいので、いい感じに分析したいところではある。
クライアント関連でのパフォーマンス変数は...
1. javascriptプログラムの処理(アルゴリズム)
2. PCのスペック(CPU処理速度、利用可能メモリサイズ、IOPS)
3. ブラウザの処理効率
ブラウザ自身の処理効率も関わってくると思う。ただ、こちらから何かできるわけでもないが...
4. PC自身の描画効率
ブラウザの速度が良くても、PC自身のピクセル反映速度が遅ければ意味がない。
ネットワーク
クライアント、サーバー間でのデータの通信速度(レイテンシ)、通信処理量(スループット)が効いてくる
ネットワークは結構ややこしい問題で、パフォーマンス速度への影響の「揺らぎ」も大きい。
いろんな通信網を通ってきており、その時間帯に通りがかった通信網がアクセス過多とかだと、レスポンスが遅くなったりする。
ネットワークの通信速度を掴みたいなら、実際のルーター同士が繋がってコンピュータ間でやり取りしてる図を想像すべき。
ネットワークでよく見る図。あれをありありと想像できたら、どの通信網で遅くなってるか?という議論ができる。
ネットワーク関連でのパフォーマンス変数は...
1. ネットワークの単速度(単純な通信速度)
2. ネットワークの混み具合(その時間のアクセス負荷)
ネットワーク帯域幅
その時間のアクセス量
3. 通信するデータサイズ
データサイズが大きいと、その分送信する量も多くなるよねっていう単純な話
4. コンピューター間の距離
サーバー
主にPCのスペックとプログラムのアルゴリズム・処理内容によって、パフォーマンスが変わってくる。
サーバー関連でのパフォーマンス変数は...
1. サーバーのスペック(CPU処理速度、利用可能メモリサイズ、IOPS)
2. プログラムの処理(アルゴリズム)
暗号化とかしてると、処理量が増えたりしてパフォーマンスが落ちたりするよ。
調べるとよりパフォーマンス知識が深まりそうなこと
IOPS
CPU処理速度の仕組み(基本からしっかり)
ブラウザのパフォーマンスについて
参考.icon
MongoDBが遅いときの切り分け方法
絵で見てわかるシステムパフォーマンスの仕組み | 小田 圭二, 榑松 谷仁, 平山 毅, 岡田 憲昌 |本 | 通販 | Amazon